package org.study.mybatis.boot.mapper;

import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Select;
import org.study.mybatis.boot.model.Student;

import java.util.List;
import java.util.Map;

/**
 * 作用描述
 *
 * @author doveylovey
 * @version v1.0.0
 * @email 1135782208@qq.com
 * @date 2024年11月13日
 */
public interface MapKeyMapper {
    /**
     * 单行结果集：未使用@MapKey注解
     */
    @Select("SELECT * FROM t_student WHERE id = #{id}")
    Map<String, Object> getStudent(Long id);

    /**
     * 多行结果集：未使用@MapKey注解
     */
    @Select("SELECT * FROM t_student")
    List<Map<String, Object>> getStudentList();

    /**
     * 单行结果集：使用@MapKey注解
     */
    @MapKey("id")
    @Select("SELECT * FROM t_student WHERE id = #{id}")
    Map<Long, Student> getStudentMapKey(Long id);

    /**
     * 多行结果集：使用@MapKey注解
     */
    @MapKey("id")
    @Select("SELECT * FROM t_student")
    Map<Long, Map<String, Object>> getStudentListMapKey();
}
